public class TheSubArrayOfMinLenth {
    // 长度最小的子数组 https://leetcode.cn/problems/minimum-size-subarray-sum/
    public int minSubArrayLen1(int target, int[] nums) {
        int len=100000;
        int left=0;
        int right=0;
        int sum=0;
        for(;left<nums.length;left++) {
            sum+=nums[left];
            for(right=left+1;right<nums.length;right++) {
                if(sum>=target) {
                    break;
                } else {
                    sum+=nums[right];
                }
            }
            len=Math.min(len,right-left+1);
            sum-=nums[left];
        }
        return len;
    }

    public int minSubArrayLen(int target, int[] nums) {
        //将len初始化为Int最大值是防止在后面进行比较取最小值时干扰,比如若初始化为0,那么最小值就为0
        int sum=0,len=Integer.MAX_VALUE;
        for(int left=0,right=0;right<nums.length;right++) {
            //进窗口
            sum+=nums[right];
            while(sum>=target) {    //判断是否能出窗口
                len=Math.min(len,right-left+1);
                sum-=nums[left++];//出窗口
            }
        }
        return len==Integer.MAX_VALUE?0:len;
    }
}
